// components/tabs/tabs.js
Component({
    /**
     * 组件的属性列表
     */
    properties: {
        tabs: Object,
        model: {
            type: String, // 类型（必填），目前接受的类型包括：String, Number, Boolean, Object, Array, null（表示任意类型）
            value: [], // 属性初始值（可选），如果未指定则会根据类型选择一个
            observer(cur, old, changedPath) {
                // 属性被改变时执行的函数（可选），也可以写成在methods段中定义的方法名字符串, 如：'_propertyChange'
                this.init();
            }
        }
    },

    /**
     * 组件的初始数据
     */
    data: {
        activeTab: {},
        activeIndex: 0,
    },
    onReady: function() {
        this.init();
    },
    /**
     * 组件的方法列表
     */
    methods: {
        init() {
            //console.log('init', this.properties);
            var tab, index = 0,
                model = this.properties.model,
                tabs = this.properties.tabs;

            for (var i = 0; i < tabs.length; i++) {
                tab = tabs[i];
                //console.log('init-for', tab, model);
                if ((tab.status + '') === model) { // 0 == "" is true
                    index = i;
                    break;
                }
            }
            //console.log('init-', tab, index)
            this.setData({
                activeTab: tab,
                activeIndex: index
            });
        },
        tabclick(e) {
            var
                tab = e.currentTarget.dataset.tab,
                index = e.currentTarget.dataset.index;

            this.setData({
                activeTab: tab,
                activeIndex: index
            });
            const eventDetail = {
                tab,
                index
            }; // detail对象，提供给事件监听函数
            this.triggerEvent('tabclick', eventDetail);
        },
    }
})